]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
checkBox: Work around a height-for-width problem
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 26 Mar 2012 09:17:09 +0000 (11:17 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 26 Mar 2012 12:43:54 +0000 (14:43 +0200)
StBoxLayout currently does not handle height-for-width children
correctly under some circumstances. As a work-around, hard-code
a label height of two lines of text, which should work for most
locales in the one place the widget is currently used.

https://bugzilla.gnome.org/show_bug.cgi?id=672543

js/ui/checkBox.js

index 097fe96f6ab4e939757abc6fca3262c6458c117e..06b4367ee9744d32b9d4e63e255c183fd2c73a1c 100644 (file)
@@ -42,6 +42,12 @@ const CheckBoxContainer = new Lang.Class({
     },
 
     _getPreferredHeight: function(actor, forWidth, alloc) {
+        /* FIXME: StBoxlayout currently does not handle
+           height-for-width children correctly, so hard-code
+           two lines for the label until that problem is fixed.
+
+           https://bugzilla.gnome.org/show_bug.cgi?id=672543 */
+/*
         let [minBoxHeight, natBoxHeight] =
             this._box.get_preferred_height(forWidth);
         let [minLabelHeight, natLabelHeight] =
@@ -49,6 +55,14 @@ const CheckBoxContainer = new Lang.Class({
 
         alloc.min_size = Math.max(minBoxHeight, minLabelHeight);
         alloc.natural_size = Math.max(natBoxHeight, natLabelHeight);
+*/
+        let [minBoxHeight, natBoxHeight] =
+            this._box.get_preferred_height(-1);
+        let [minLabelHeight, natLabelHeight] =
+            this.label.get_preferred_height(-1);
+
+        alloc.min_size = Math.max(minBoxHeight, 2 * minLabelHeight);
+        alloc.natural_size = Math.max(natBoxHeight, 2 * natLabelHeight);
     },
 
     _allocate: function(actor, box, flags) {